#pragma once
#include "Utils.h"
#include "Scene.h"
#include "Ray.h"


class ColorReflect
{
public:
	ColorReflect(bool figura);
	~ColorReflect(void);

	Vector GetColor(void);

	void Calculate_Sphere_Color(Scene * m_Scene,SceneObject * shape,Ray *  V , Ray * L, Ray * N , Ray * R, int luz,int index_shape);

	void Calculate_Triangle_Color(Scene * m_Scene,SceneObject * shape,Ray *  V , Ray * L, Ray * N , Ray * R, int luz,int index_shape);

	void SetColor(Vector _color);

	void AddColor(Vector _color);

	void Clamp();



	static void ClampVector(Vector &color1);

	static Vector GetIColor(Scene * m_Scene,SceneTriangle * triangle, Vector impact, int index_shape);
	static Vector GetTextureColor(Scene * m_Scene,SceneTriangle * triangle, Vector impact, int index_shape);
	static Vector GetSphereTextureColor(Scene * m_Scene,SceneSphere * sphere, Vector impact, int index_shape);
	static Vector GetPhongColor(Scene * m_Scene,Ray *  V , Ray * L, Ray * N , Ray * R , Vector diffuse, int index_shape, int luz);



private:

	Vector color;
};

